package com.wang.Diy;

import org.aspectj.lang.annotation.*;

/**
 * @Author 19225
 * @create 2020/12/7 22:30
 */
//方式三：使用注解方式实现AOP
    @Aspect //标注这个类是一个切面
public class AnnotationPointcut {
        @Pointcut("execution(* com.wang.service.UserServiceImpl.*(..))")
        public void log() {}
        @Before("com.wang.Diy.AnnotationPointcut.log()")
        public void before()
        {
            System.out.println("方法执行前！");
        }
        @AfterReturning("com.wang.Diy.AnnotationPointcut.log()")
        public void afterReturningPrintLog() {
        System.out.println("方法执行之后，输出日志");
        }
        @AfterThrowing("com.wang.Diy.AnnotationPointcut.log()")
        public void afterThrowingPrintLog() {
        System.out.println("方法执行过程出现了异常，输出日志");
        }
        @After("com.wang.Diy.AnnotationPointcut.log()")
        public void after()
    {
        System.out.println("方法执行后！");
    }

}
